package com.hamu.mapper;

import com.hamu.pojo.Tag;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface TagMapper {
    @Insert("insert into tags (tag_name, create_user, created_time) VALUES (#{tagName}, #{createUser}, #{createdTime})")
    void add(Tag tag);

    List<Tag> list(Integer userId);

    List<Tag> listAll();

    @Select("select * from tags WHERE tag_id = #{tagId}")
    Tag findById(Integer tagId);

    List<Tag>findTagsByIds(@Param("ids") List<Integer> tagIds);

    @Update("update tags set tag_name = #{tagName} where tag_id = #{tagId}")
    void update(Tag tag);

    @Delete("delete from tags where tag_id = #{tagId}")
    void delete(Integer tagId);

    @Select("SELECT t.* FROM tags t " +
            "INNER JOIN article_tag at ON t.tag_id = at.tag_id " +
            "WHERE at.article_id = #{articleId}")
    List<Tag> findTagsByArticleId(Integer articleId);
    List<Tag> searchTags(String query);
}